package proyectoX.src.municiones;

import java.awt.Rectangle;

import javax.swing.ImageIcon;

import proyectoX.src.aplicacion.Nivel;
import proyectoX.src.armas.arma;
import proyectoX.src.entidades.Principal;

/**
 * Bomba pequeña que mantiene su posición y "explota" al colisionar.
 *
 */
public class MunicionFlotante extends MunicionX {


	/**
	 * Crea a la munición con los datos pasados por parámetro.
	 * @param posX Posición x.
	 * @param posY Posición y.
	 * @param e Arma que la dispara.
	 * @param nivel Nivel actual.
	 */
	public MunicionFlotante (int posX, int posY, arma e,Nivel nivel) {
		super(e,nivel,0);
		ImageIcon image = new ImageIcon(this.getClass().getResource("/proyectoX/sprites/bombaFlotante.gif"));

		Principal naveAux = nivel.obtenerNavePrincipal();

		//posiciones correspondientes centradas sobre la nave
		int nuevoX = (posX+naveAux.getWidth()/2)-image.getIconWidth()/2;
		int nuevoY = (posY+naveAux.getHeight()+15)-image.getIconHeight()/2;

		this.setIcon(image);
		this.setVisible(true);
		this.setSize(image.getIconWidth(), image.getIconHeight());		
		this.setLocation(nuevoX, nuevoY);
	}

	/**
	 * Implementación vacía ya que esta munición se queda para siempre en el 
	 * lugar donde fue creado.
	 */
	public void actualizarPosicion() {
		
	}	

	/**
	 * Devuelve el área de colisión de la munición. En este caso es nula porque no colisiona.
	 * @return Área de colisión.
	 */
	public Rectangle getBounds() {
		return new Rectangle(this.getX()+35, this.getY()+34, 15, 14);
	}


	/**
	 * Pide a nivel que calcule colisiones con naves enemigas.
	 * @return Verdadero si colisionó, falso en caso contrario.
	 */
	public boolean calcularColisiones() {
		return nivel.calcularColisionConEnemigas(this);
	}

}
